package edu.fdzc.shop.controller;

import edu.fdzc.shop.dto.ProductDto;
import edu.fdzc.shop.service.ProductService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * DESCRIPTION:
 * 商品相关接口
 */
@RestController
@RequestMapping("/api/product")
public class ProductController {

    //private static final Logger logger = LoggerFactory.getLogger(ProductController.class);

    @Resource
    private ProductService productService;

    /**
     * 新增商品
     * @param productDto
     * @return
     */
    @PostMapping("/add")
    public Boolean add(@RequestBody ProductDto productDto) {
        //logger.debug("新增商品请求参数，productDto:{}", productDto);
        return productService.add(productDto);
    }

    /**
     * 搜素商品
     * @param productDto
     * @return
     */
    @GetMapping("/search")
    public List<ProductDto> search(@RequestBody ProductDto productDto) {
        //logger.debug("搜素商品请求参数，productDto:{}", productDto);
        return productService.search(productDto);
    }

    /**
     * 查看指定商品信息
     * @param productId
     * @return
     */
    @GetMapping("/detail/{productId}")
    public ProductDto detail(@PathVariable("productId") String productId) {
        //logger.debug("查看指定商品信息请求参数，productId:{}", productId);
        return productService.getProductById(productId);
    }

    /**
     * 修改商品信息
     * @param productDto
     * @return
     */
    @PutMapping("/update")
    public Boolean update(@RequestBody ProductDto productDto) {
        //logger.debug("修改商品信息请求参数，productDto:{}", productDto);
        return productService.update(productDto);
    }

    /**
     * 删除商品
     * @param productId
     * @return
     */
    @DeleteMapping("/delete/{productId}")
    public Boolean delete(@PathVariable("productId") String productId) {
        //logger.debug("删除商品请求参数，productId:{}", productId);
        return productService.delete(productId);
    }
}
